Android调试wifi使用wpa

您所在的位置:网站首页 ifconfig sit0 Android调试wifi使用wpa

Android调试wifi使用wpa

2023-03-22 12:43| 来源: 网络整理| 查看: 265

本文共 5212 字,大约阅读时间需要 17 分钟。

启动WLAN (1)加载驱动 android系统需要先load driver。手动调试dirver ko的时候,先调用insmod命令加载指定的wifi驱动,注意有些wifi ko的加载后面需要添加参数。

再调用iwconfig可以看到驱动是否加载成功,如下,可以看到wlan0已经有了,则驱动加载成功。

(1)ifconfig -a

p2p0 Link encap:Ethernet HWaddr b2:72:bf:d9:55:9f Driver hif_pci BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:0 TX bytes:0

wlan0 Link encap:Ethernet HWaddr b0:72:bf:53:55:9f Driver hif_pci UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:0 TX bytes:0

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope: Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 TX bytes:0

sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 TX bytes:0

eth0 Link encap:Ethernet HWaddr 00:04:9f:05:58:c7 Driver fec UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 TX bytes:0

(2)打开wlan0 ifconfig wlan0 up

启动wpa_supplicant 命令如下:可以参考下自己init.xxx.rc是如何配置的,参数可能会不一样。

/vendor/bin/hw/wpa_supplicant -d -B –iwlan0 –Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -C/data/misc/wifi/sockets -i:指定网口;

-D:指定驱动类型;

-c:指定了wpa_supplicant的配置文件。

-C : ctrl_interface parameter

配置文件/data/misc/wifi/wpa_supplicant.conf,-d参数是打开wpa_supplicant的打印。

这里AndroidPie9.0 改变了wpa_supplicant.conf 和 ctrl_interface 的路径:

我这边是改为了/vendor/etc/wifi/wpa_supplicant.conf 和 /data/vendor/wifi/wpa/sockets

所以能正确启动wpa_supplicant的关键就是这边要指定正确的参数路径。

然后确保wpa_supplicant已经运行起来了,可以ps -A | grep wpa看下。

console:/ # ps -A | grep wpa wifi 4100 1 18316 4904 poll_schedule_timeout 0 S wpa_supplicant

启动wpa_cli wpa_cli -i网口 -p socket所在路径 例如像我刚才那么调用的话,则用下面命令启动:

wpa_cli -iwlan0 -p /data/misc/wifi/sockets/ 进入如下界面则已经可以正常调试了。

wpa_cli v2.0-devel-4.4.2_rtw_r12456.20141113_beta Copyright © 2004-2013, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Interactive mode

如果一直显示如果出现“Could not connect to wpa_supplicant - re-trying”,那表示 wpa_cli 不能和wpa_supplicant 建立 socket 连接,这时要检查 wpa_supplicant 进程是否还在,还有socket所在路径wlan0是否存在(在我的例子是/data/misc/wifi/sockets/wlan0)。

使用wpa_cli 进行debug 扫描ap

输入scan命令

scan OK CTRL-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00 SSID= CTRL-EVENT-SCAN-RESULTS CTRL-EVENT-STATE-CHANGE id=-1 state=0 BSSID=00:00:00:00:00:00 SSID=

wpa_supplicant有“CTRL-EVENT-SCAN-RESULTS ”的回复,则可以输入scan_results可以看到扫描结果,如下。

scan_results bssid / frequency / signal level / flags / ssid 14:75:90:7b:9c:b2 5745 -52 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_5G_9CB2 a0:63:91:45:9a:ed 5785 -63 [WPA2-PSK-CCMP][WPS][ESS] LinuxBSPtest_5G a4:6c:2a:54:03:d7 5765 -57 [WPA2-EAP-CCMP][ESS] NXP a4:6c:2a:54:03:db 5765 -58 [WPA-PSK-TKIP][WPA2-PSK-CCMP][ESS] External-Internet a4:6c:2a:54:03:df 5765 -58 [WPA2-EAP-CCMP][ESS] Freescale a4:6c:2a:54:03:d8 5765 -58 [WPA2-PSK-CCMP][ESS] Hydra d4:ee:07:50:a8:52 2447 -50 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] Android_test

连接

从扫描结果选择连接一个ap。

add_network 1 set_network 1 ssid “HUAWEI G9 Youth” OK set_network 1 key_mgmt WPA-PSK OK set_network 1 psk “xx123456” OK set_network 1 pairwise CCMP OK set_network 1 group CCMP OK set_network 1 proto WPA2 OK enable_network 1 OK CTRL-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00 SSID= CTRL-EVENT-SCAN-RESULTS WPS-AP-AVAILABLE Trying to associate with d4:61:2e:a2:b9:e5 (SSID=‘HUAWEI G9 Youth’ freq=2437 MHz) CTRL-EVENT-STATE-CHANGE id=-1 state=5 BSSID=00:00:00:00:00:00 SSID= CTRL-EVENT-STATE-CHANGE id=1 state=6 BSSID=00:00:00:00:00:00 SSID=HUAWEI G9 Youth Associated with d4:61:2e:a2:b9:e5 CTRL-EVENT-STATE-CHANGE id=1 state=7 BSSID=d4:61:2e:a2:b9:e5 SSID=HUAWEI G9 Youth CTRL-EVENT-STATE-CHANGE id=1 state=8 BSSID=d4:61:2e:a2:b9:e5 SSID=HUAWEI G9 Youth WPA: Key negotiation completed with d4:61:2e:a2:b9:e5 [PTK=CCMP GTK=CCMP] CTRL-EVENT-CONNECTED - Connection to d4:61:2e:a2:b9:e5 completed (auth) [id=1 id_str=] CTRL-EVENT-STATE-CHANGE id=1 state=9 BSSID=d4:61:2e:a2:b9:e5 SSID=HUAWEI G9 Youth

步骤如下: (1)“add_network”,这里返回网络ID 为 1。 (2) 配置网络的 SSID,执行 set_network 1 ssid AP 的 SSID。 (3)配置网络的加密方式和密码。 (4)启动网络,执行“enable_network 0”。 (5)收到“CTRL-EVENT-CONNECTED”表示连接成功。

分配IP 此时已经连接上ap,dhcp分配一个IP即可。

输入 q 退出 wpa_cli,执行命令:dhcpcd wlan0

此时已经可以ping通了。

调试技巧总结:

可以在wpa_supplicant里面增加一些log来跟踪指令的下发流程。

通过在命令行终端输入getprop init.svc.wpa_servername 来检查wpa_supplicant进程是否在运行。

wpa_supplicant起来后,可以通过查看wpa_cli ping或者wpa_cli status来检测wpa_suppliant通道是否正常。

检查/system/etc/wifi/wpa_supplicant.conf和/data/misc/wifi/wpa_supplicant.conf中ctrl_interface是否正确。

检查/dev/socket/wpa_wlan0、/data/misc/wifi/sockets/wlan0、/data/misc/wifi/sockets/p2p、wpa_ctrl_*等节点是否成功创建。

通过lsmod检查驱动模块是否成功加载。

通过查看/sys/class/rfkill/目录下是否生成rfkill*节点判断驱动加载过程是否OK。

转载地址:https://blog.csdn.net/qq_30624591/article/details/95825699 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3